/**
 * js 函数基础
 */

// 1、函数声明
console.log(plus(10, 5)); // 使用函数声明定义的函数，可以在声明之前调用
function plus(a, b) {
  return a + b;
}
console.log(plus(10, 5));
// const plus = function (a, b) {
//     return a + b;
// }

// 2、函数表达式，函数是一个值，函数本质是对象
// console.log(minus(10, 5)); // 报错，使用函数表达式定义的函数，不能在表达式之前调用
let minus = function (a, b) {
  return a - b;
};
console.log(minus(10, 5));

// 3、箭头函数
let multiply = (a, b) => a * b;
console.log(multiply(10, 5));

// 函数可以作为参数传递给其它函数
function operation(a, b, func) {
  return func(a, b);
}
console.log(operation(10, 5, plus));
console.log(operation(10, 5, minus));

// 4、函数返回值：所有函数都有返回值，如果没有return， 就会返回undefined
let divide = (a, b) => {
  if (b == 0) {
    console.log("除数不能为0");
  } else {
    return a / b;
  }
};
console.log(divide(10, 5));
console.log(divide(10, 0)); // 输出?

// 5、函数参数可以设置默认值，实参和形参可以不一一对应
let pow = (a, b = 2) => {
  return a ** b;
};
console.log(pow(10));
